<?php
class ClientsFormulariosController extends AppController {

	var $name = 'ClientsFormularios';
	var $uses = array('ClientsFormulario','Client','Formulario');

    function beforeFilter () {
        parent::beforeFilter();

		// Aplico el Layout segun la Vista o si es AJAX
		if ($this->RequestHandler->isAjax()) {
			$this->layout = 'ajax';
		}else{
			// Cambio la Vista por la del Rol
			$this->layout = strtolower($this->Session->read('VistaActual'));
		}
    }

	function index() {

		// Elimino las relaciones dinamicamente
		$this->Formulario->unbindModel( array('hasMany' => array('Formularioscampo') ) );

		// Cargo el listado de formularios asociados al cliente
		$formularios_asociados = $this->ClientsFormulario->find('list', array(
							'conditions' => array(
												'ClientsFormulario.client_id' => $this->Session->read('ClientesUsuarioLogueado.id'),
											),
							'fields' => array('ClientsFormulario.formulario_id','ClientsFormulario.id'),
						));

		if (!empty($this->data)) {

		/*----------------------------------------------------------------------------*/
		/* Elimino todos los formularios											  */
		/*----------------------------------------------------------------------------*/
			$this->ClientsFormulario->deleteAll(array('ClientsFormulario.client_id' => $this->Session->read('ClientesUsuarioLogueado.id')), false);

		/*----------------------------------------------------------------------------*/
		/* Grabo los formularios													  */
		/*----------------------------------------------------------------------------*/

			foreach ($this->data['Formulario'] as $key => $id_formulario) {

				$this->ClientsFormulario->create();
				$this->ClientsFormulario->set(array(
					'client_id' => $this->Session->read('ClientesUsuarioLogueado.id'),
					'formulario_id' => $id_formulario,
				));


				if (!$this->ClientsFormulario->save()) {
					$this->Session->setFlash(__('El formulario no ha podido ser cargado. Por favor, intente nuevamente.', true), 'default', array('class' => 'error-message'));
					$this->redirect('/clients/view/'.$this->Session->read('ClientesUsuarioLogueado.id').'/9');					
				}
			}

			$this->Session->setFlash(__('Los formularios han sido cargados', true));
			$this->redirect('/clients/view/'.$this->Session->read('ClientesUsuarioLogueado.id').'/9');

		}else{ // si los datos estan vacios

			if(!empty($_POST)){

				/*----------------------------------------------------------------------------*/
				/* Elimino todos los formularios											  */
				/*----------------------------------------------------------------------------*/
					$this->ClientsFormulario->deleteAll(array('ClientsFormulario.client_id' => $this->Session->read('ClientesUsuarioLogueado.id')), false);
				/*----------------------------------------------------------------------------*/

				$this->Session->setFlash(__('Se procesó el requerimiento y no quedó asociado ningún Formulario', true), 'default', array('class' => 'error-message'));
				$this->redirect('/clients/view/'.$this->Session->read('ClientesUsuarioLogueado.id').'/9');
			}
		}

		$Formularios = $this->Formulario->find('all', array(
							'conditions' => array(
												'Formulario.es_publico' => 1,
											),
							'fields' => array('Formulario.id','Formulario.name','Formulario.html'),
							'order' => array('Formulario.name')
						));

		$this->set('Formularios', $Formularios);
		$this->set('formularios_asociados', $formularios_asociados);		
	}
}